Storage system, storage device, and remote copy method

ABSTRACT

A first data transfer module sends update data to be written into a primary volume to a second data transfer module; the second data transfer module stores the update data into a secondary volume, stores differential data written to a storage address for the update data in the secondary volume into a second differential volume, updates a second management information holding module, and then informs completion of the data updating to the first data transfer module; and the first data transfer module stores the update data to an update address in the primary volume when the information of completion of the data updating is received from the second data transfer module, stores the differential data into a first differential volume, and updates a first management information holding module.

CLAIM OF PRIORITY

The present application claims priority from Japanese applicationP2004-103821 filed on Mar. 31, 2004, the content of which is herebyincorporated by reference into this application.

BACKGROUND

This invention relates to a storage system having a snapshot function,and more particularly to a technique for transferring data of asnapshot.

In an information society, one important role of a storage system thataccumulates information is protecting data. The most common method ofprotecting data is a backup that saves a duplicate of data in a storageto a backup medium such as a tape. With the backup, even when the datain the storage is lost due to failure, a fault, an operational error, orthe like, the data can be recovered based on the backup, therebyenabling recovery of the data at the time when saved and suppressingdamage to a minimum.

However, as storage capacities expand, the amount of time necessary tomake backups becomes a problem. Moreover, in applications that requirefrequent updating of data, even if the backup is made once, differencevis-a-vis the backup expand quickly. In the event of an accident, thedamage may be great. Thus, backups must be made more frequently.Furthermore, in order to prepare for a case where a file is lost due toan operational error, or a case where one wants to compare file contentswith a previous state, and other such cases, there is a desire to enableregular backups to be referenced easily.

As a function of handling these types of applications, a snapshotfunction has been receiving attention. The snapshot function is afunction which maintains a data image in the storage currently beingused at the moment when the snapshot is taken, and also enables accessby means other than the storage currently being used. At the moment whenthe snapshot is obtained, the snapshot can be used without waiting forcompletion of all the data in the storage to be copied thus minimizingthe backup time which was a problem in making tape backups.

In order to maintain the snapshot, there is a method of using a savingstorage area to save the data at the time when the snapshot is obtained(refer to U.S. Pat. No. 5,649,152).

According to this technique, once the snapshot of an operating volume isobtained, each time when an update subsequently occurs at a block thathas not yet been updated, the old data in that block is copied to thesaving storage area, and a virtual volume for providing the snapshot isalso generated. When reading from the virtual volume, if the block atthe address to be read has been copied to the saving storage area, thatblock is returned. If there is no copy in the saving storage area, thenno update has occurred in the operating volume, so that the block at thesame address in the operating volume is returned.

According to this technique, as compared to the case of saving in theseparate volume all the data in the operating volume at the time whenthe snapshot is obtained, the image of the volume at the time when thesnapshot is obtained can be maintained with small storage capacities.

Furthermore, regarding migration of data stored in the storage system,in order to migrate data being accessed from the superior device (host),an extended data transfer function (XRC: Extended Remote Copy) and apeer-to-peer data transfer function (PPRC: Peer-to-peer Remote Copy)have been proposed by IBM, Inc. (refer to “Implementing ESS CopyServices on S/390”, IBM P.502.8.5 DASD migration).

SUMMARY

The above-mentioned snapshot is achieved by means of a primary volume, adifferential volume, and a mapping table. However, when migratingsnapshot data, no consideration was given to synchronizing these threewhile copying. Therefore, for example, when a time lag occurs in thecopying between the primary volume, the differential volume and themapping table, the snapshot data is not integrated during that period,and a problem occurred in that the image (virtual volume) from the timewhen the snapshot was created cannot be structured. Furthermore, evenwhen the primary volume and the differential volume have been copied,when a fault occurs to the data transfer function and the mapping tableis not copied, there is a problem in that the virtual volume of thesnapshot cannot be composed.

It is therefore an object of this invention to provide a storage systemcapable of safely copying snapshot data.

According to this invention, there is provided a storage system,comprising a primary disk subsystem having a disk drive provided fornormal use, a secondary disk subsystem having a disk drive that stores aduplicate of data stored in the primary disk subsystem, and acommunications line that connects the primary disk subsystem and thesecondary disk subsystem, the primary disk subsystem including a primaryvolume where normal reading and writing are performed, a firstdifferential volume that stores differential data of a snapshot of theprimary volume, a first management information holding module thatmanages the differential data, and a first data transfer module thattransfers data to the secondary disk subsystem, the secondary disksubsystem including a secondary volume that stores a duplicate of thedata stored in the primary volume, a second differential volume thatstores differential data of a snapshot of the secondary volume, a secondmanagement information holding module that manages the differentialdata, and a second data transfer module that transfers data to theprimary disk subsystem,

wherein:

the first data transfer module sends update data to be written into theprimary volume to the second data transfer module;

the second data transfer module: stores the update data in the secondaryvolume; stores the differential data written to the update address inthe secondary volume into the second differential volume; updates thesecond management information holding module; and then informscompletion of data updating to the first data transfer module; and

the first data transfer module: stores the update data to the updateaddress in the primary volume when the information of completion of thedata updating is received from the second data transfer module; storesthe differential data into the first differential volume; and updatesthe first management information holding module.

According to this invention, consistencies in the snapshot data can bemaintained, and disaster recovery can be enhanced.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a construction of a storage systemaccording to a first embodiment of this invention.

FIG. 2 is a block diagram showing a construction of a NAS according to afirst embodiment of this invention.

FIG. 3 is an explanatory diagram of management of a snapshot accordingto a first embodiment of this invention.

FIG. 4 is another explanatory diagram of management of the snapshotaccording to a first embodiment of this invention.

FIG. 5 is a flowchart of data transfer processing according to a firstembodiment of this invention.

FIG. 6 is a flowchart of data transfer processing according to a secondembodiment of this invention.

FIG. 7 is a flowchart of data transfer processing according to a thirdembodiment of this invention.

FIG. 8 is a flowchart of local side data transfer processing, which ispart of data transfer processing according to a fourth embodiment ofthis invention.

FIG. 9 is a flowchart of remote-side data receiving processing 1, whichis part of the data transfer processing according to the fourthembodiment of this invention.

FIG. 10 is a flowchart of remote-side data receiving processing 2, whichis part of the data transfer processing according to the fourthembodiment of this invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, explanation will be made of embodiments of this invention,with reference to the drawings.

FIG. 1 is a block diagram showing a construction of a storage systemaccording to a first embodiment of this invention.

A NAS (Network Attached Storage device) 1 is connected to a disksubsystem 2. The local-side NAS 1 is connected via a network 6 to aclient 7 using a CIFS (Common Internet File System), and to a client 8using an NFS (Network File System). The network 6, for example, performscommunications via TCP/IP or other such protocols. It should be notedthat, Fibre Channel or iSCSI (internet SCSI) may also be used to performthe communications. The NAS 1 is provided with a file server (NFS/CIFSserver module), and the file server provides file sharing service to theclients 7 and 8.

Furthermore, the NAS 1 is provided with a differential snapshot module.The differential snapshot module uses a differential snapshot creationprogram 122, a differential snapshot management program 123 and adifferential snapshot composition program 124, which are describedbelow, to create and maintain the snapshot and compose the virtualvolume.

The local-side disk subsystem 2 is provided with a plurality of diskdrives. The disk drives are set with logical units (LUs) recognized byoperating system as single unit of disks. Furthermore, the disk drivesconstitute main volume groups, and the main volume groups are providedwith a primary volume 201, a differential volume 202 and a mapping table203.

Furthermore, the logical unit is constituted by a RAID (Redundant Arrayof Independent Disks), thus giving redundancy to the stored data.Therefore, even when a fault occurs to a part of the disk drives, thestored data is not lost.

The primary volume 201 is a volume provided for normal operation, whichis accessed from the clients 7 and 8 to write data therein and read datatherefrom. The differential volume 202 stores the data stored in theprimary volume 201, when performing copy-on-write of the snapshot. Themapping table 203 stores relationships between the primary volume 201and the differential volume 202, for each snapshot generation.

Furthermore, the disk subsystem 2 is provided with a remote copy module.The remote copy module detects addresses where changes occurred in thedata stored in the main volume group, and transfers data to aremote-side disk subsystem 4, and is realized by executing a remote copyprogram 404 stored in the main volume group.

The remote side is provided with a remote-side NAS 3 and the remote-sidedisk subsystem 4, and can provide the same functions as the local-sideNAS 1 and the local-side disk subsystem 2.

The local side and the remote side are connected through a data transfernetwork 5. The network 5 is connected so as to enable transfer of databetween the local-side NAS 1 and the remote-side NAS 3, and between thelocal-side disk subsystem 2 and the remote-side disk subsystem 4, tosend and receive signals (data and control signals) via a TCP/IPprotocol.

It should be noted that, the network 5 may also be a SAN (Storage AreaNetwork), where signals (data and control signals) are sent and receivedvia a Fibre Channel protocol that is appropriate for data transfer.

It should be noted that, data backup from the local side to the remoteside, can be performed between the NASs 1 and 3, or between the disksubsystems 2 and 4. In the following embodiments, explanations will begiven regarding data backups between the disk subsystems 2 and 4, butthis invention may also be applied in data backups between the NASs 1and 3.

Furthermore, the explanation has been given regarding the embodimentwhere the NAS and the disk subsystem are provided separately on both thelocal side and the remote side, but this invention may be applied in astorage system where the NAS and the disk subsystem are integrated intoa single unit.

FIG. 2 is a block diagram showing a construction of the NAS 1 accordingto a first embodiment of this invention.

The NAS 1 is provided with a CPU 11, a memory 12, a network interface14, and a storage interface 15.

The network interface 14 sends and receives data and control signalsto/from the clients 7 and 8 via a TCP/IP protocol.

The storage interface 15 sends and receives data and control signalsto/from the disk subsystem 2, using the Fibre Channel.

The memory 12 is provided with a cache memory for temporarily storingdata that is read and written to/from the disk. Furthermore, the memory12 stores a file server program 121, the differential snapshot creationprogram 122, the differential snapshot management program 123, thedifferential snapshot composition program 124, and a file system program125. The CPU 11 calls up and executes those programs, whereby variousprocessings are performed.

The file server program 121, responding to a data access request fromthe clients 7 and 8, requests the file system program 125 to executeread processing from files or directories or write processing to filesor directorys, and sends the result of this execution back to theclients 7 and 8.

The snapshot creation program 122 receives a snapshot creation request,and then creates the snapshot of the disk subsystem 2 primary volume.Specifically, the mapping table 203 area is set.

The differential snapshot management program 123 manages thedifferential volume 202 storing the differential data necessary tomaintain the snapshot, and performs processing to write data accordingto the request from the file system program 125 and to maintain thesnapshot. Specifically, when using the mapping table 203 to write thedata to the primary volume 201, the differential data stored in theprimary volume 201 is copied to the differential volume, and after thatthe update data is written into the primary volume 201 to update thestored content.

The differential snapshot composition program 124 uses the primaryvolume 201 and the differential volume 202 to read virtual volumeaccording to the request from the file system program 125 (i.e.,processing to make the snapshot usable). Specifically, the mapping table203 is referenced, it is determined whether to read data from theprimary volume 201 or from the differential volume 202, the data is thenread from the determined volume, and then a virtual volume for providingthe data stored in the primary volume 201 at the time of receiving thesnapshot creation request is then composed.

The file system program 125, in response to read request to the files ordirectories and write request from the files or directories issued bythe file server program 121 or the differential snapshot managementprogram 123, designates the volume where a file and directory are beingstored, and a block address and size to be accessed. Furthermore,requests for virtual volume read processing and write processing areissued to the snapshot composition program 124.

Next, explanation will be given regarding management of the snapshot.FIGS. 3 and 4 are explanatory diagrams of snapshot management accordingto a first embodiment of this invention.

The snapshot creation program 122 receives the snapshot creationrequest, and then registers identification information for the newvirtual volume (in the “snapshot 1 differential volume storage address”column of mapping table in FIG. 3) into the mapping table 203. Thisvirtual volume block, at the point in time when the snapshot is created,is associated in a one-to-one correspondence with a block in the primaryvolume 201, since no data storage address is registered in thedifferential volume storage address column in the mapping table 203.

After that, when updating the data inside the primary volume 201, thesnapshot management program 123 copies the pre-update differential datain the primary volume 201 into the differential volume 202, and aftercopying, writes the update data into the primary volume 201, thusupdating the primary volume 201 storage content. It should be notedthat, the copying of the data from the primary volume 201 to thedifferential volume 202 may be performed by actually moving the data, orby rewriting a pointer that indicates the address where the data isstored.

Furthermore, the snapshot management program 123 updates the mappingtable 203, so as to establish a correspondence between the block in thevirtual volume 202 corresponding to the block in the primary volume 201where the data was updated, and the block in the differential volume 202storing the data (i.e., the pre-update data) that had been stored in theprimary volume 201 at the time when the snapshot was created.

For example, in FIG. 4, between the creation of the snapshot 1 and thecreation of a snapshot 2, when rewriting the data stored in P1 of theprimary volume to “aaaaa”, differential data “AAAAA” that was stored inP1 of the primary volume is copied into D1 of the differential volume,and then the update data “aaaaa” is stored in P1 of the primary volume.At this time, the differential data's storage address D1 is stored inthe P1 column of the mapping table. Furthermore, a “1” indicating thatdifferential data has been stored for the snapshot 1 is stored as themost significant bit of changed/unchanged bit map in the mapping table.

Furthermore, from the creation of the snapshot 2 until the present, whenrewriting P2 in the primary volume to “bbbbb”, differential data “BBBBB”that was stored in P2 of the primary volume is copied into D2 of thedifferential volume, and then the update data “bbbbb” is stored into P2of the primary volume. At this time, the differential data's storageaddress D2 is stored in the P2 column of the mapping table. At thistime, D2 is stored not only in the storage address of the differentialvolume of the snapshot 2, but also in the storage address of thedifferential volume of the snapshot 1 which requires this differentialdata. Furthermore, a “1” indicating that differential data is stored forthe snapshots 1 and 2 is stored in the most significant bit and thesecond significant of the changed/unchanged bit map in the mapping table(i.e., “11” is stored in the bitmap showing whether there is a change).

When the file system program 125 issues a virtual volume access requestto the snapshot composition program 124, the snapshot compositionprogram 124 references to the mapping table, and reads out data from theprimary volume block or the differential volume block that is associatedwith the virtual volume block. Therefore, the file system program 125accesses the virtual volume, so as to be able to use the informationstored in the primary volume at the time when the snapshot creationrequest was issued. Therefore, a snapshot image in the file system canbe provided to the clients 7 and 8.

In other words, the virtual volume is a virtual volume that isconstituted of storage area inside one or a plurality of disk devices.Actually, the virtual volume is constituted of a subset of the blocks inthe primary volume, and a subset of the blocks in the differentialvolume.

For example, in FIG. 4, the virtual volume corresponding to the primaryvolume at the time when the snapshot 1 is created is obtained by readingout and composing the following: “AAAAA” which is the differential datacorresponding to P1 and is stored in D1 in the differential volume,“BBBBB” which is the differential data corresponding to P2 and is storedin D2 of the differential volume, and “CCCCC” which is stored in P3 inthe primary volume (since there is no differential data corresponding toP3, the data is read out from the primary volume).

FIG. 5 is a flowchart of data transfer processing according to a firstembodiment of this invention.

First, when the data update request from the differential snapshotmanagement program 123 is received (i.e., the occurrence ofcopy-on-write based on the update request) (S101), a local-side datatransfer module analyzes the update request and extracts the update data(the data to be written to the disk) and the data update address (theaddress where the data is to be written), which are included in theupdate request (S102). After that, the differential data(prior-to-update data) stored at the update address in the primaryvolume 201 is read out (S103). Furthermore, the area in the differentialvolume for storing the differential data is determined, and mappinginformation after data is updated (information about the area storingthe differential data that is written to the update address in themapping table) is created (S104). It should be noted that, at thisstage, the mapping information is not written into the mapping table203.

Then, the data which has been obtained as described above, the updateaddress, the differential data, and the mapping information are combinedas a group and included in a request, and this request is sent to theremote-side disk subsystem 4 (S105).

The remote-side data transfer module monitors the receiving of therequest (S106). When the remote-side data transfer module receives therequest from the local-side disk subsystem 2, the update data, theupdate address, the differential data, and the mapping information areextracted from the request that was received (S107 to S110).

Then, the update data extracted from the request is written to theupdate address in a primary volume 401 (S111), and the differential dataextracted from the request is written into the differential volume 402(S112). The address where this differential data is written is thestorage area of the differential data included in the mappinginformation that was extracted from the request. Then, the mappinginformation extracted from the request is written to the mapping table403 (S113). After that, the updating of the data on the remote side iscomplete, so a completion is informed to the local-side disk subsystem 2(S114).

The local-side data transfer module that sent the request monitors thereceiving of the information of completion (S115). Then, when thelocal-side data transfer module receives the information of completionfrom the remote-side disk subsystem 4, the update data is written intothe primary volume 201 (S116), and then the differential data that wasread at S103 is written into the differential volume 202 (S117), and themapping information created at S104 is written into the mapping table(S118).

In this way, in the data transfer processing according to the firstembodiment, the update data necessary for the differential snapshot, thedifferential data, and the mapping information are combined as a group,and are sent from the local-side disk subsystem 2 to the remote-sidedisk subsystem 4. Therefore, even if damage occurs while the data istransferred from the local side to the remote side, inconsistencies inthe snapshot data can be avoided.

FIG. 6 is a flowchart of data transfer processing according to a secondembodiment of this invention. In the data transfer processing accordingto the second embodiment, the data transferred from the local side tothe remote side is kept at a minimum level, and the transfer performanceprecedes.

First, when the data update request by the differential snapshotmanagement program 123 (i.e., the occurrence of the copy-on-write basedon the update request) is received (S121), the local-side data transfermodule analyzes the update request, and extracts the update data (thedata to be written to the disk) and the data update address (the addresswhere the data is to be written), which are included in the updaterequest (S122). Then, the update data and the update address which wereobtained are included in the request, and this request is sent to theremote-side disk subsystem 4 (S123).

The remote-side data transfer module monitors the receiving of therequest (S124). When the remote-side data transfer module receives therequest from the local-side disk subsystem 2, the update data and theupdate address are extracted from the received request (S125 and S126).

Then, the differential data that is stored in the update address in theprimary volume 401 (the update address extracted from the request) isread out (S127). Then, the area for writing the differential data issecured in the differential volume 402 (S128), and the differential datathat was read out at S127 is written into the area in the differentialvolume 402 which was secured at S128 (S129). After that, the update datathat was extracted from the request is written to the update addressextracted from the request (S130), and the area where the differentialdata was stored is written to the update address of the mapping table(S131). After that, since the updating of the data on the remote side iscomplete, the completion is informed to the local-side disk subsystem 2(S132).

The local-side data transfer module that sent the request monitors thereceiving of the information of completion (S133). Then, when thelocal-side data transfer module receives the information of completionfrom the remote-side disk subsystem 4, the differential data that isstored in the update address in the primary volume 201 is read out andthe update data is written to the update address (S134). Then, thedifferential data read from the update address is stored into thedifferential volume 202 (S135), and the area where the differential datais stored is written to the update address of the mapping table (S136).

In this way, in the data transfer processing according to the secondembodiment, the data that is transferred from the local side to theremote side is limited to only the update data and the storage address,and the other information that is necessary for the copy-on-write (i.e.,the differential data and the mapping table information) is obtained onthe remote side. Accordingly, the data that is transferred from thelocal side to the remote side can be kept at the minimum level, the timenecessary for the transfer processing can be shortened, and the transferperformance can be improved. Furthermore, increases in the load on thedata transfer network 5 can be reduced.

FIG. 7 is a flowchart of data transfer processing according to a thirdembodiment of this invention. In the data transfer processing accordingto the third embodiment, after confirming that the differential data andthe mapping table match each other, the data is then updated, thusmaking the data synchronization more reliable.

First, when the data update request by the differential snapshotmanagement program 123 (i.e., the occurrence of the copy-on-write basedon the update request) is received (S141), the local-side data transfermodule analyzes the update request, and extracts the update data (thedata to be written to the disk) and the data update address (the addresswhere the data is to be written), which are included in the updaterequest (S142). Then, the differential data (the pre-update data) storedin the update address in the primary volume 201 is read out (S143).Furthermore, the area in the differential volume to store thedifferential data is determined, and the mapping information after datais updated (the information about the area for storing the differentialdata, which is written in the update address of the mapping table) iscreated (S104). It should be noted that at this stage, the mappinginformation is not written into the mapping table 203.

Then, the obtained update data, the update address, the differentialdata, and the mapping information are combined as a group and includedin a request, and this request is sent to the remote-side disk subsystem4 (S145).

The remote-side data transfer module monitors the receiving of therequest (S146). When the remote-side data transfer module receives therequest from the local-side disk subsystem 2, the update data, theupdate address, the differential data, and the mapping information areextracted from the request that was received (S147 through S150).

Then, it is determined whether the data that is stored in the updateaddress of the primary volume 401 is equivalent to the differential datathat was extracted from the request (S151). For the negative result, itis then determined that the transferred data is irregular, and an erroris informed to an administrator (S162). On the other hand, for thepositive result, it is determined that the transferred data is notirregular, so that the update data that was extracted from the requestis written to the update address in the primary volume 401 (S152).

Then, the differential data that was extracted from the request iswritten into the differential volume 402 (S153). The address where thedifferential data is written corresponds to the storage area of thedifferential data that is included in the mapping information extractedfrom the request. After that, the mapping information after data isupdated (the information about the area for storing the differentialdata written to the update address in the mapping table) is created(S154).

Then, it is determined whether the mapping information created at S154,and the mapping information extracted from the request, match each other(S155). When the result is that both sets of mapping information do notmatch each other, it is then determined that the transferred data isirregular, and an error is informed to the administrator (S162). Itshould be noted that at this time the differential data is written tothe update address of the primary volume 401, or the data that waswritten into the differential volume 402 is deleted, whereby the primaryvolume 401 and the differential volume 402 may return to the pre-updatestate.

On the other hand, if both sets of mapping information match each other,then it is determined that the transferred data does not have fault, andthe mapping information extracted from the request is written into themapping table 403 (S156). After that, since the updating of the data onthe remote side is complete, a completion is informed to the local-sidedisk subsystem 2 (S157).

The local-side data transfer module that sent the request monitors thereceiving of the information of completion (S158). Then, when thelocal-side data transfer module receives the information of completionfrom the remote-side disk subsystem 4, the update data is written intothe primary volume 201 (S159), the differential data that was read atS143 is written into the differential volume 202 (S160), and the mappinginformation created at S144 is written into the mapping table (S161).

In this way, in the data transfer processing according to the thirdembodiment, the update data, the storage address of the update data, thedifferential data, and the mapping information are transferred from thelocal side to the remote side, and it is confirmed that the differentialdata on the local side and the differential data on the remote sidematch each other before writing the update data. Furthermore, it isconfirmed that the mapping information created on the local side and themapping information created on the remote side match each other beforeupdating the mapping table. Therefore, in addition to the effects of thefirst embodiment, the reliability of the data transfer can be improvedeven further.

FIGS. 8 to 10 are flowcharts of data transfer processing according to afourth embodiment of this invention. The data transfer processing of thefourth embodiment differs from the processing in the embodimentsmentioned above in that a data transfer method changes depending on thelevel of congestion on the data transfer network 5.

FIG. 8 is a flowchart of data transfer processing of the local-side disksubsystem.

First, when the data update request by the differential snapshotmanagement program 123 (i.e., the occurrence of the copy-on-write basedon the update request) is detected (S171), the local-side data transfermodule analyzes the update request, and extracts the update data (thedata to be written to the disk) and the data update address (the addresswhere the data is to be written), which are included in the updaterequest (S172). Then, the differential data (the pre-update data)stored, in the update address in the primary volume 201 is read out(S173). Furthermore, the area in the differential volume for storing thedifferential data is determined, and the mapping information after datais updated (the information about the area for storing the differentialdata, which is written in the update address of the mapping table) iscreated (S174). It should be noted that at this stage, the mappinginformation is not written into the mapping table 203.

After that, the local-side data transfer module monitors the usage rateof the data transfer network 5 and calculates this usage rate (S175).This usage rate can be calculated, for example, by dividing the amountof data sent for the past 1 hour by the line speed per hour (the amountof data that can be transferred per hour).

Then, the calculated usage rate and a pre-set maximum value are compared(S176). When the result is that the network usage rate exceeds themaximum value, it is then determined that the load on the data transfernetwork 5 is great. Then, the obtained update data and update addressare included in a request, and the request is sent to the receivingprocessing 1 of the remote-side disk subsystem 4 (S177).

On the other hand, if the network usage rate is not beyond the maximumvalue, then it is determined that the load on the data transfer network5 is small (or there is still room), so that the obtained update data,update address, differential data and mapping information are combinedas a group and included in the request, and the request is sent to thereceiving processing 2 of the remote-side disk subsystem 4 (S178).

The local-side data transfer module that sent the request monitors thereceiving of the information of completion (S179). Then, when thelocal-side data transfer module receives the information of completionfrom the remote-side disk subsystem 4, the update data is written intothe primary volume 201 (S180), and the differential data that was readout at S173 is written into the differential volume 202 (S181), and themapping information that was created at S174 is written into the mappingtable (S182).

FIG. 9 is a flowchart of the receiving processing 1 by the remote-sidedisk subsystem.

The remote-side data transfer module monitors the receiving of therequest (S191). When the remote-side data transfer module receives therequest for the receiving processing 1 from the local-side disksubsystem 2, the update data and the update address are extracted fromthe received request (S192 and S193).

Then, the differential data being stored in the update address in theprimary volume 401 (the update address extracted from the request) isread out (S194). Then, area for writing the differential data is securedin the differential volume 402 (S195), and the differential data thatwas read out at S194 is written into the area of the differential volume402 that was secured at S195 (S196). After that, the update data thatwas extracted from the request is written to the update address that wasextracted from the request (S197). The area where the differential datais stored is written to the update address in the mapping table (S198).After that, since the updating of the data on the remote side iscomplete, a completion is informed to the local-side disk subsystem 2(S199).

FIG. 10 is a flowchart of the receiving processing 2 by the remote-sidedisk subsystem.

The remote-side data transfer module monitors the receiving of therequest (S201). When the remote-side data transfer module receives therequest for the receiving processing 1 from the local-side disksubsystem 2, the update data, the update address, the differential data,and the mapping information are extracted from the request that wasreceived (S202 to S205).

Then, it is determined whether the data that is stored in the updateaddress of the primary volume 401 is equivalent to the differential datathat was extracted from the request (S206). For the negative result, itis then determined that the transferred data is irregular, and an erroris informed to an administrator (S213). On the other hand, for thepositive result, then it is determined that the transferred data is notirregular, so that the update data that was extracted from the requestis written to the update address in the primary volume 401 (S207).

Then, the differential data that was extracted from the request iswritten into the differential volume 402 (S208). The address where thedifferential data is written corresponds to the storage area of thedifferential data that is included in the mapping information extractedfrom the request. After that, the mapping information after data isupdated (the information about the area for storing the differentialdata written to the update address in the mapping table) is created(S209).

Then, it is determined whether the mapping information created at S209,and the mapping information extracted from the request, match each other(S210). When the result is that both sets of mapping information do notmatch each other, it is then determined that the transferred data isirregular, and an error is informed to the administrator (S213). Itshould be noted that at this time the differential data is written tothe update address of the primary volume 401, or the data that waswritten into the differential volume 402 is deleted, whereby the primaryvolume 401 and the differential volume 402 may return to the pre-updatestate.

On the other hand, if both sets of mapping information match each other,then it is determined that the transferred data is not irregular, andthe mapping information extracted from the request is written into themapping table 403 (S211). After that, since the updating of the data onthe remote side is complete, a completion is informed to the local-sidedisk subsystem 2 (S212).

In this way, in the data transfer processing according to the fourthembodiment, depending on the load status (line usage rate) of the datatransfer network 5 connected to the local side and the remote side, thedata transferred from the local side to the remote side changes. Thatis, when the lines are congested, the volume of transferred data isreduced, and when the lines are not congested, redundant data is addedfor the copy-on-write, thus securing reliability.

While the present invention has been described in detail and pictoriallyin the accompanying drawings, the present invention is not limited tosuch detail but covers various obvious modifications and equivalentarrangements, which fall within the purview of the appended claims.

1. (canceled)
 2. A storage system, comprising a primary disk subsystemhaving a disk drive provided for normal operation, a secondary disksubsystem having a disk drive that stores a duplicate of data stored inthe primary disk subsystem, and a communications line that connects theprimary disk subsystem and the secondary disk subsystem, the primarydisk subsystem comprising a primary volume where normal reading andwriting are performed, a first differential volume that storesdifferential data of a snapshot of the primary volume, a firstmanagement information holding module that manages the differentialdata, and a first data transfer module that transfers data to thesecondary disk subsystem, the secondary disk subsystem comprising asecondary volume that stores a duplicate of the data stored in theprimary volume, a second differential volume that stores differentialdata of a snapshot of the secondary volume, a second managementinformation holding module that manages the differential data, and asecond data transfer module that transfers data to the primary disksubsystem, wherein: the first data transfer module sends update data tobe written into the primary volume to the second data transfer module;the second data transfer module: stores the update data in the secondaryvolume; stores the differential data stored at the update address in thesecondary volume, into the second differential volume; updates thesecond management information holding module; and then informscompletion of data updating to the first data transfer module; and thefirst data transfer module: when the information of completion of thedata updating is received from the second data transfer module; storesthe update data to the update address in the primary volume; stores thedifferential data stored at the update address in the primary volume,into the first differential volume; and updates the first managementinformation holding module. 3.-6. (canceled)
 7. The storage systemaccording to claim 2, wherein: the first data transfer module sends theupdate data to be written into the primary volume, and the updateaddress where the update data is to be written, to the second datatransfer module; and the second data transfer module: reads thedifferential data stored in the update address in the secondary volumeand stores the differential data into the second differential volume;stores the update data sent from the first data transfer module to theupdate address in the secondary volume; updates the second managementinformation holding module based on the storage address where thedifferential data is to be stored into the second differential volume;and then informs the completion of the data updating to the first datatransfer module.
 8. A storage device used in a storage system comprisinga primary storage device having a disk drive provided for normaloperation, a secondary storage device having a disk drive that stores aduplicate of data stored in the primary storage device, and acommunications line that connects the primary storage device and thesecondary storage device, the primary storage device comprising aprimary volume where normal reading and writing are performed, a firstdifferential volume that stores differential data of a snapshot of theprimary volume, a first management information holding module thatmanages the differential data, and a first data transfer module thattransfers data to the secondary storage device, the secondary storagedevice comprising a secondary volume that stores a duplicate of the datastored in the primary volume, a second differential volume that storesdifferential data of a snapshot of the secondary volume, a secondmanagement information holding module that manages the differentialdata, and a second data transfer module that transfers data to theprimary storage device, wherein the first data transfer module: sendsthe update data to be written into the primary volume to the second datatransfer module; stores the update data to the update address in theprimary volume when information of completion is received from thesecond data transfer module; stores the differential data into the firstdifferential volume; and updates the first management informationholding module. 9.-11. (canceled)
 12. A storage device used by a storagesystem comprising a primary storage device having a disk drive providedfor normal operation, a secondary storage device having a disk drivethat stores a duplicate of data stored in the primary storage device,and a communications line that connects the primary storage device andthe secondary storage device, the primary storage device comprising aprimary volume where normal reading and writing are performed, a firstdifferential volume that stores differential data of a snapshot of theprimary volume, a first management information holding module thatmanages the differential data, and a first data transfer module thattransfers data to the secondary storage device, the secondary storagedevice comprising a secondary volume that stores a duplicate of the datastored in the primary volume, a second differential volume that storesdifferential data of a snapshot of the secondary volume, a secondmanagement information holding module that manages the differentialdata, and a second data transfer module that transfers data to theprimary storage device, wherein the second data transfer module:receives the update data sent from the first data transfer module to bewritten into the secondary volume; stores the update data into thesecondary volume; stores the differential data stored at the updateaddress in the secondary volume, into the second differential volume;updates the second management information holding module; and theninforms completion of the data updating for updating data to the primarystorage device. 13.-16. (canceled)
 17. The storage device according toclaim 12, wherein the second data transfer module: receives from thefirst data transfer module the update data to be written into theprimary volume and the update address where the update data is to bewritten; reads the differential data stored in the update address in thesecondary volume and stores the differential data into the seconddifferential volume; stores the received update data to the updateaddress in the secondary volume; updates the second managementinformation holding module based on the storage address where thedifferential data is to be stored into the second differential volume;and then informs the completion of the data updating to the first datatransfer module.
 18. A remote copy method used in a storage systemcomprising a primary disk subsystem having a disk drive provided fornormal operation, a secondary disk subsystem having a disk drive thatstores a duplicate of data stored in the primary disk subsystem, and acommunications line that connects the primary disk subsystem and thesecondary disk subsystem, the primary disk subsystem comprising aprimary volume where normal reading and writing are performed, a firstdifferential volume that stores differential data of a snapshot of theprimary volume, a first management information holding module thatmanages the differential data, and a first data transfer module thattransfers data to the secondary disk subsystem, the secondary disksubsystem comprising a secondary volume that stores a duplicate of thedata stored in the primary volume, a second differential volume thatstores differential data of a snapshot of the secondary volume, a secondmanagement information holding module that manages the differentialdata, and a second data transfer module that transfers data to theprimary disk subsystem, the remote copy method comprising: a first stepof controlling the first data transfer module to send the update data tobe written into the primary volume to the second data transfer module; asecond step of controlling the second data transfer module to: store theupdate data sent from the first data transfer module into the secondaryvolume; store the differential data written in the storage address wherethe update data is stored in the secondary volume, into the seconddifferential volume; update the second management information holdingmodule; and then inform the completion of data updating to the firstdata transfer module; and a third step of controlling the first datatransfer module to: store the update data to the update address in theprimary volume when a information of completion is received from thesecond data transfer module; store the differential data into the firstdifferential volume; and update the first management information holdingmodule. 19.-20. (canceled)